セクション: プロキシ
セクション Proxies プロキシを実装する機能ブロックを定義します。
プロキシは、異なるアプリケーションのモジュール間でデータを交換するために使用されます。プロキシ FB のインスタンスは、他のアプリケーションのモジュール インスタンスを表します。
SEC Proxies //optional: yes, modifier: [UPDATE]
SEC Proxy : <identifier> //optional: yes, modifier [UPDATE]
FB := <FB name>; //optional: no, type: QID
SEC MirrorVar : <identifier> //optional: yes, modifier [UPDATE])
Variable := <variable name>; //optional: no, type: VarPath
END_SEC
SEC ProxyParameter : <target> // optional: yes, modifier [UPDATE]
Variable := <InstancePath>; // optional: no, type: VarPath
END_SEC
END_SEC
END_SEC定義タイプの構文の詳細については、「 モジュール宣言の構文 説明された。
関数ブロックは次のものでなければなりません
IBaseInstance派生する。関数ブロックにはメソッドが必要です
SetProxyIdentification次の署名が付いていますが、これはインターフェイスにはありませんIBaseInstance含まれるもの:SetProxyIdentification(pbyName : POINTER TO BYTE, udiComAddr : UDINT, udiLocalComAddr : UDINT, pEnvironment : MEnv)渡されたインスタンス名と設定されたアドレスはプロパティによって決定される必要があります
InstanceName、ComAddressそしてLocalComAddress返される..ファンクション ブロックは次のユーザーには使用できません。
IModule派生する。セクション付き
MirrorVarモジュール インスタンスの変数はプロキシ インスタンスにミラーリングできます。これを行うには、変数のインスタンス パスが (モジュール インスタンスの FB への) 相対パスの形式である必要があります。Variable宣言される。モジュール インスタンス FB の指定された変数には、次のルールが適用されます。変数は、モジュール インスタンス FB の vars、入力または出力の一部である必要があります。
モジュール FB とプロキシ FB の両方で定義する必要があります
両方の FB で同じタイプでなければなりません
プリミティブ型でなければなりません。したがって、ポインタ、インターフェイス、構造体全体はミラーリングに許可されず、単純な型 (数値、STRING、TIME など) のみが許可されます。
指定された変数がこれらの条件を満たしている場合、それらは RMP の一部として自動的に転送され、ユーザーは転送について心配する必要はありません。
セクション付き
ProxyParameterプロキシのパラメータを定義できます。次の点を考慮する必要があります。のターゲットは、
ProxyParametersモジュールのパラメータターゲットに対応する必要があります。の
Variableプロキシ モジュールのは、モジュール パラメータに使用される変数の型と一致する必要があります。ここではプリミティブ型と列挙型のみが許可されます。プロキシ パラメータは、各アプリケーションの初期化フェーズで、モジュール インスタンスで構成された値に 1 回設定されます。アプリケーションの実行中は、これらの変数はプロキシに反映されません。
関数ブロックの名前は、名前空間パスで修飾できます。
SEC Proxies
SEC Proxy ProxyFB1
FB := ProxyModule1;
SEC MirrorVar : diInput
Variable := diInput;
END_SEC
SEC ProxyParameter : InParam1
Variable := TL.Input1_Name;
END_SEC
END_SEC
END_SEC